﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TMD.GT.Site.Controladora;
using TMD.GT.Site.Util;
using TMD.GT.Entidades;
//using System.Web.Mvc;
using System.Text;

namespace TMD.GT.Site.Vistas.AlineacionComponente
{
    public partial class SeleccionComponente : System.Web.UI.Page
    {
        decimal icalculo = 0;
        int iUltimaEtapa = 0;

        protected void Page_Load(object sender, EventArgs e)
        {
            Controles(true);

            if (!Page.IsPostBack)
            {
               // btnRechazar.Attributes.Add("onclick", "javascript:return validar();");

                ddlCategoria.DataSource = CategoriaEstrategicaControladora.ListarCategoriaEstrategica();
                ddlCategoria.DataValueField = "CODIGO_CATEGORIA";
                ddlCategoria.DataTextField = "NOMBRE";
                ddlCategoria.DataBind();

                gvCriterios.DataSource = CriterioEvaluacionControladora.ListarCriteriosEvaluacion(new TipoComponente { CODIGO_TIPO = 1, TIPO = "1" });
                gvCriterios.DataBind();
            
            //---------- Carga del componente -----------
            List<Componente> componentes = ComponenteControladora.ListarComponentes(new Componente { Codigo = Request.QueryString["ID_componente"].ToString(), Concepto = "", CodigoTipo = 0 });

            foreach (Componente componente in componentes){
                //CUMPLIMIENTO DEL PLAN
                if (componente.CumplePlan == "NO"){
                    optNO.Checked = true;
                }
                if (componente.CumplePlan == "SI"){
                    optSI.Checked = true;
                }

                ddlCategoria.SelectedIndex = componente.CodigoCategoria;
                txtComponente.Text =
                     "Codigo: " + componente.Codigo + "\n\n" +
                     "Nombre: " + componente.Nombre + "\n\n" +
                     "Tipo: " + componente.CodigoTipo + "\n\n" +
                     "Concepto:\n" + componente.Concepto + "\n\n" +
                     "Proposito:\n" + componente.Proposito + "\n\n" +
                     "Problema a resolver:\n" + componente.Problema + "\n\n" +
                     "Alcance general:\n" + componente.Alcance + "\n\n" +
                     "Exclusiones:\n" + componente.Exclusiones + "\n\n" +
                     "Duracion:\n" + componente.Duracion + "\n\n" +
                     "Costo: " + componente.Costo + "\n\n" +
                     "TIR: " + componente.TIR + "\n\n" +
                     "VAN: " + componente.VAN + "\n\n" +
                     "RBC: " + componente.RBC + "\n\n" +
                     "Beneficios:\n" + componente.Beneficios;

                HiddenField hdd = UpdatePanel1.FindControl("hddComponente") as HiddenField;
                hdd.Value = componente.Codigo;

                HiddenField hddCodComponente = UpdatePanel1.FindControl("hddComponenteCodigo") as HiddenField;
                hdd.Value = componente.CodigoComponente.ToString();

                     
            }
            //-------------------------------------------
            }
        }

        protected void btnContinuar_Click(object sender, EventArgs e)
        {
            if (optNO.Checked == true)
            {
                
            }
            else
            {
                Controles(false);
            }
        }
         
        protected void btnRegresar_Click(object sender, EventArgs e)
        {
            Controles(true);
        }

   
        protected void Controles(Boolean bEstado)
        {
            pnlPlanEsrategico.Visible = bEstado;
            pnlEvaluacion.Visible = !(bEstado);
            btnRechazar.Visible = bEstado;
            btnContinuar.Visible = bEstado;
            btnTerminar.Visible = !(bEstado);
            btnRegresar.Visible = !(bEstado);
            if (bEstado==true)
            {
                lblTitulo.Text = "Alineación con el plan estratégico";
            }
            else
            {
                lblTitulo.Text = "Evaluación del componente";
            }
        }

        protected void optSI_CheckedChanged(object sender, EventArgs e)
        {

        }

        protected void optNO_CheckedChanged(object sender, EventArgs e)
        {
            
        }

        public void ddlCalificacionIndexChange(object sender, EventArgs e)
        {
            decimal valor;
            foreach (GridViewRow row in gvCriterios.Rows)
            {

                DropDownList ddlCal = row.FindControl("ddlCalificacion") as DropDownList;

                HiddenField hdd = row.FindControl("hddCriterio") as HiddenField;
                HiddenField hddCriterioCodigo = row.FindControl("hddCriterioCodigo") as HiddenField;
                HiddenField hddComponente = UpdatePanel1.FindControl("hddComponenteCodigo") as HiddenField;

                valor = (Convert.ToInt32(ddlCal.SelectedValue.ToString()) * Convert.ToDecimal(hdd.Value.ToString()));
                icalculo += valor;

                lblPuntaje.Text = icalculo.ToString();
                iUltimaEtapa = CicloAlineamientoControladora.ObtUltimaEtapaAlineamiento();

                CriterioEvaluacionControladora.ActualizarEvaluacion(Convert.ToInt32(hddComponente.Value.ToString()), Convert.ToInt32(hddCriterioCodigo.Value.ToString()), iUltimaEtapa, valor);


            }
            Controles(false);

        }

        protected void btnTerminar_Click(object sender, EventArgs e)
        {


            HiddenField hdd = UpdatePanel1.FindControl("hddComponente") as HiddenField;
            ComponenteControladora.ActualizarEstadoCategorización(hdd.Value.ToString(), "SE");

            Response.Redirect("BusquedaSeleccion.aspx");
        }

        protected void btnRechazar_Click(object sender, EventArgs e)
        {

           HiddenField hdd =   UpdatePanel1.FindControl("hddComponente") as HiddenField;
           ComponenteControladora.ActualizarEstadoCategorización(hdd.Value.ToString(), "RE");
           Response.Redirect("BusquedaSeleccion.aspx");

        ////    btnRechazar.Attributes.Add("onclick", "" + "confirm('¿Confima la eliminación del registro?" + hdd.Value + "')");

        //    //StringBuilder sb = new StringBuilder();
        //    //sb.Append("alert('Estimado usuario: Se ha rechazado el componente.');");
        //    //ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "Componente Rechazado", Convert.ToString(sb), true);
        //    //MensajeJavascript("Estimado usuario: Se ha rechazado el componente.", "Componente Rechazado");
      
        //    //if (optNO.Checked == true)
        //    //{
        //    //     ComponenteControladora.ActualizarEstadoCategorización(hdd.Value.ToString() ,"RE" );
        //    //}
        //    //else
        //    //{
        //    //    MensajeJavascript("Estimado usuario: Se ha rechazado el componente.", "Componente Rechazado");
        //    //}

        //   // Response.Redirect("BusquedaSeleccion.aspx");
        }

        protected void btnSalir_Click(object sender, EventArgs e)
        {
            Response.Redirect("BusquedaSeleccion.aspx");
        }

        public void MensajeJavascript(string _Mensaje, string _NombreFuncion)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("alert('" + _Mensaje + "');");
            ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), _NombreFuncion, Convert.ToString(sb), true);
        }

    }
}